// 100个emoji
const emojiStr =
	'😀😁😂😃😄😅😆😉😊😋😎😍😘😗😙😚😇😐😑😶😏😣😥😮😯😪😫😴😌😛😜😝😒😓😔😕😲😷😖😞😟😤😢😭😦😧😨😬😰😱😳😵😡😠🙈🙉🙊🐵🐒🐶🐕🐩🐺🐱😺😸😹😻😼😽🙀😿😾🐈🐯🐅🐴🐎🐮🐂🐃🐄🐷🐖🐗🐏🐑🐐🐪🐫🐘🐭🐁🐀🐹🐰🐇🐻🐨🐼'

const emojiArr = emojiStringToArray2(emojiStr)

// 判断是否编码
export function isCode(emojiStr = '') {
	let emojiList = emojiStringToArray2(emojiStr)

	if (emojiArr.indexOf(emojiList[0]) === -1) {
		return false
	} else {
		return true
	}
}

// 解码
export function decodeEmoji(emojiStr) {
	let emojiList = emojiStringToArray2(emojiStr)
	let code = ''

	emojiList.forEach(emoji => {
		code += emojiArr.indexOf(emoji) % 10
	})

	return parseInt(code)
}

//编码
export function encodeEmoji(code = '') {
	let codeArr = (code + '').split('')
	let emojiList = ''
	codeArr.forEach(code => {
		let index = parseInt(Math.floor(Math.random() * 10) + code)
		emojiList += emojiArr[index]
	})

	return emojiList

}

// emoji字符串转数组
// ❤️❤️❤️❤️❤️❤️解析成一个emoji
function emojiStringToArray1(str) {
	split = str.split(/([\uD800-\uDBFF][\uDC00-\uDFFF])/);
	arr = [];
	for (var i = 0; i < split.length; i++) {
		char = split[i]
		if (char !== "") {
			arr.push(char);
		}
	}
	return arr
}

// ❤️❤️❤️❤️❤️❤️会出现空串
function emojiStringToArray2(str) {
	return [...str]
}

// ❤️❤️❤️❤️❤️❤️会出现空串
function emojiStringToArray3(str) {
	return Array.from(str)
}

// ❤️❤️❤️❤️❤️❤️会出现空串
function emojiStringToArray4(str) {
	return str.split(/.*?/u)
}
